package com.adsi.graficos;

import com.adsi.logica.LogicaCuentasLocal;
import com.adsi.modelo.Cuentas;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.model.chart.PieChartModel;

/**
 *
 * @author Estudiante
 */
@ManagedBean(name = "graficosvista")
@RequestScoped
public class PieChart implements Serializable {

    public PieChart() {
    }
    @EJB
    private LogicaCuentasLocal logicaCuentas;
    private PieChartModel graficoPie;

    public LogicaCuentasLocal getLogicaCuentas() {
        return logicaCuentas;
    }

    public void setLogicaCuentas(LogicaCuentasLocal logicaCuentas) {
        this.logicaCuentas = logicaCuentas;
    }

    public PieChartModel getGraficoPie() {
        return graficoPie;
    }

    public void setGraficoPie(PieChartModel graficoPie) {
        this.graficoPie = graficoPie;
    }

    @PostConstruct
    public void init() {
        createPieModels();
    }

    private void createPieModels() {
        graficar();
    }

    public void graficar() {
        try {

            graficoPie = new PieChartModel();
            List<Cuentas> lista = null;
            lista = logicaCuentas.consultar();

            for (int i = 0; i < lista.size(); i++) {

                graficoPie.set(lista.get(i).getCliCedula().getCliNombre(), lista.get(i).getCueSaldo());
            }
            graficoPie.setTitle("Cuentas");
            graficoPie.setLegendPosition("e");
            graficoPie.setFill(false);
            graficoPie.setShowDataLabels(true);
            graficoPie.setDiameter(150);
        } catch (Exception ex) {
            Logger.getLogger(PieChart.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}
